#ifndef MUSICLIST_H
#define MUSICLIST_H
#include <QVector>
#include "music.h"
#include <QUrl>
#include <QList>
#include <QSet>

typedef QVector<Music>::iterator iterator;
//管理所有歌曲对应的Music对象
class MusicList
{
public:
    MusicList();
    //将List<QUrl>音乐列表中的信息管理到QVector<Music>中
    void addMusicsByUrl(const QList<QUrl>& musicUrls);
    //通过音乐UUID获取到Music音乐对象
    iterator findMusicByMusicId(const QString& musicId);

    //迭代器
    iterator begin();
    iterator end();

    //将MusicList音乐列表信息写入到数据库中
    void writeToDB();
    //将数据库中的信息加载到musicList音乐列表中
    void readFromDB();

private:
    QVector<Music> musicList;
    QSet<QString> musicPaths;//为防止歌曲文件重复加载
};

#endif // MUSICLIST_H
